Лабораторная работа №4

Линейная алгебра

Дурдалыев Максат

Российский университет дружбы народов имени Патриса Лумумбы, Москва, Россия

2025-10-25

Докладчик

Цели и задачи

Цель работы

Основной целью работы является изучение возможностей специализированных пакетов Julia для выполнения и оценки эффективности операций над объектами линейной алгебры.

Задание

  1. Используя Jupyter Lab, повторите примеры.
  2. Выполните задания для самостоятельной работы.

Поэлементные операции над многомерными массивами

Поэлементные операции сложения и произведения элементов матрицы

Поэлементные операции над многомерными массивами

Поэлементные операции сложения и произведения элементов матрицы

Поэлементные операции над многомерными массивами

Использование возможностей пакета Statistics для работы со средними значениями

Транспонирование, след, ранг, определитель и инверсия матрицы

Использование библиотеки LinearAlgebra для выполнения определённых операций

Транспонирование, след, ранг, определитель и инверсия матрицы

Использование библиотеки LinearAlgebra для выполнения определённых операций

Транспонирование, след, ранг, определитель и инверсия матрицы

Использование библиотеки LinearAlgebra для выполнения определённых операций

Вычисление нормы векторов и матриц, повороты, вращения

Использование LinearAlgebra.norm(x)

Вычисление нормы векторов и матриц, повороты, вращения

Использование LinearAlgebra.norm(x)

Вычисление нормы векторов и матриц, повороты, вращения

Вычисление нормы для двумерной матрицы

Вычисление нормы векторов и матриц, повороты, вращения

Вычисление нормы для двумерной матрицы

Матричное умножение, единичная матрица, скалярное произведение

Примеры матричного умножения, единичной матрицы и скалярного произведения

Матричное умножение, единичная матрица, скалярное произведение

Примеры матричного умножения, единичной матрицы и скалярного произведения

Факторизация. Специальные матричные структуры

Решение систем линейный алгебраических уравнений Ax = b

Факторизация. Специальные матричные структуры

Julia позволяет вычислять LU-факторизацию и определяет составной тип факторизации для его хранения:

Пример вычисления LU-факторизации и определение составного типа факторизации для его хранения

Факторизация. Специальные матричные структуры

Пример вычисления LU-факторизации и определение составного типа факторизации для его хранения

Факторизация. Специальные матричные структуры

Исходная система уравнений Ax = b может быть решена или с использованием исходной матрицы, или с использованием объекта факторизации:

Пример решения с использованием исходной матрицы и с использованием объекта факторизации

Факторизация. Специальные матричные структуры

Julia позволяет вычислять QR-факторизацию и определяет составной тип факторизации для его хранения:

Пример вычисления QR-факторизации и определение составного типа факторизации для его хранения

Факторизация. Специальные матричные структуры

Примеры собственной декомпозиции матрицы

Факторизация. Специальные матричные структуры

Примеры собственной декомпозиции матрицы

Факторизация. Специальные матричные структуры

Далее рассмотрим примеры работы с матрицами большой размерности и специальной структуры:

Примеры работы с матрицами большой размерности и специальной структуры

Факторизация. Специальные матричные структуры

Примеры работы с матрицами большой размерности и специальной структуры

Факторизация. Специальные матричные структуры

Пример добавления шума в симметричную матрицу (матрица уже не будет симметричной):

Пример добавления шума в симметричную матрицу

Факторизация. Специальные матричные структуры

В Julia можно объявить структуру матрица явно, например, используя Diagonal, Triangular, Symmetric, Hermitian, Tridiagonal и SymTridiagonal:

Пример явного объявления структуры матрицы

Факторизация. Специальные матричные структуры

Далее для оценки эффективности выполнения операций над матрицами большой размерности и специальной структуры воспользуемся пакетом BenchmarkTools:

Использование пакета BenchmarkTools

Факторизация. Специальные матричные структуры

Далее рассмотрим примеры работы с разряженными матрицами большой размерности. Использование типов Tridiagonal и SymTridiagonal для хранения трёхдиагональных матриц позволяет работать с потенциально очень большими трёхдиагональными матрицами:

Примеры работы с разряженными матрицами большой размерности

Общая линейная алгебра

В примере показано, как можно решить систему линейных уравнений с рациональными элементами без преобразования в типы элементов с плавающей запятой (для избежания проблемы с переполнением используем BigInt):

Решение системы линейных уравнений с рациональными элементами без преобразования в типы элементов с плавающей запятой

Самостоятельная работа

Решение задания “Произведение векторов”

Самостоятельная работа

Решение задания “Системы линейных уравнений”

Самостоятельная работа

Решение задания “Системы линейных уравнений”

Самостоятельная работа

Решение задания “Системы линейных уравнений”

Самостоятельная работа

Решение задания “Операции с матрицами”

Самостоятельная работа

Решение задания “Операции с матрицами”

Самостоятельная работа

Решение задания “Операции с матрицами”

Самостоятельная работа

Решение задания “Операции с матрицами”

Самостоятельная работа

Решение задания “Линейные модели экономики”

Самостоятельная работа

Решение задания “Линейные модели экономики”

Самостоятельная работа

Решение задания “Линейные модели экономики”

Выводы

В результате выполнения данной лабораторной работы я изучил возможности специализированных пакетов Julia для выполнения и оценки эффективности операций над объектами линейной алгебры.